from pytube # ライブラリをインストールimport YouTube
# YouTubeの動画URLを指定
url = 'https://www.youtube.com/watch?v=IVbY5edMfCA'
# YouTubeオブジェクトを作成
yt = YouTube(url)
# 音声ストリームを選択(ビデオではなく音声のみ)
stream = yt.streams.filter(only_audio=True).first()
# 音声を指定のフォルダにダウンロード
output_folder = 'C:/Users/suzyt/OneDrive/music'
# バックスラッシュまたは正斜線を使用
stream.download(output_path=output_folder)
print('音声をダウンロードしました。')
ここで、youtubeの音声だけのファイル(mp4)ができた。
2のプログラム
import librosa
import numpy as np# numpyをインストール
import soundfile as sf# soundfileをインストール
# WAVファイルのパス
wav_file = 'xbp/de12/python/aaa.wav' # 正しいファイル名を指定
# 音声ファイルを読み込む
y, sr = librosa.load(wav_file)
# 主旋律を抽出
melody, _ = librosa.piptrack(y=y, sr=sr)
melody = np.nan_to_num(melody) # NaNを0に置き換える
# 主旋律を保存
output_file = 'C:/Users/suzyt/mygit/xbp/de12/python/aaa.wav'
sf.write(output_file, melody, sr)
print('主旋律を抽出し、保存しました。')
ここで、1でできたmp4ファイルだとプログラムが作動しないことが発覚。そこでmp4ファイルをwavファイルに変換するプログラムを作成。
from pydub import AudioSegment
# MP4ファイルのパス
# mp4_file = "C:/Users/suzyt/OneDrive/music/CinderellaBoy.mp4" # 正しいファイル名を指定
mp4_file = "C:/Users/suzyt/mygit/xbp/de12/python/CinderellaBoy.mp4"
# WAVファイルのパス(出力先)
# output_wav_file = 'C:/Users/suzyt/OneDrive/music/' # 正しいファイル名を指定
output_wav_file = 'C:/Users/suzyt/mygit/xbp/de12/python/aaa' # 正しいファイル名を指定
# MP4ファイルをWAVに変換
audio = AudioSegment.from_file(mp4_file, format="mp4")
audio.export(output_wav_file, format="wav")
print('MP4ファイルをWAVに変換しました。')
しかし、これがうまく作動せず…。そこで、このサイト
を参考に、「ffmpeg」をインストール。
結果、一度はうまく作動しwavファイルが作成されたが、数日後もう一度やってみると作動せず、
作成したはずの音声wavファイルも動かなくなっていたためそこでできなくなりました。
一応、chatgptにpythonで音声から楽譜に起こすプログラムを作れるか聞いたところ、
「高度な技術が必要であり大変複雑なコードとなるため、自分で聞いて作譜した方が善い」と出てきました。